perm filename TEL.XGP[ESS,JMC] blob
sn#175012 filedate 1975-12-26 generic text, type T, neo UTF8
/FONT#0=BASL30/FONT#1=BASI30/FONT#2=BASB30/FONT#3=NGR40
␈↓␈↓↓␈↓α␈↓β␈↓ ↓H
␈↓ ↓H
␈↓ β&␈↓βComputer Communication Via The Dial-up Network␈↓ ↓H␈↓ ↓H
␈↓ ↓H
␈↓βIntroduction␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HFor␈αsome␈αtime␈αthe␈αARPA␈αNetwork␈αhas␈α
been␈α
providing␈α
a␈α
means␈α
for␈α
users␈α
to␈α
send␈α
mail,␈α
transfer␈α
files,␈↓ ↓H
␈↓ ↓Hand␈α∃have␈α∀terminal␈α∀sessions␈α∀at␈α∀geographically␈α∀separated␈α∀computers.␈α∀These␈α∀features␈α∀can␈α∀all␈α∀be␈↓ ↓H
␈↓ ↓Hobtained␈α⊃without␈α⊃the␈α⊃cost␈α⊃overhead␈α⊃of␈α⊃a␈α⊃dedicated␈α⊃network␈α⊃computer␈α⊃at␈α⊃each␈α⊃site␈α⊃and␈α⊂without␈↓ ↓H
␈↓ ↓Hrenting␈αexpensive␈αtelephone␈αlines␈αbetween␈αthese␈αcomputers.␈αThe␈αswitched␈αtelephone␈αnetwork␈αcan␈αbe␈↓ ↓H
␈↓ ↓Hused␈α
to␈α
provide␈α
these␈α
facilities␈α
at␈α
low␈α
cost␈α
(and␈α
a␈α
low␈α
data␈α
rate)␈α
to␈α
computers␈α
that␈αhave␈αautomatic␈↓ ↓H
␈↓ ↓Hdial-out␈αand␈αanswer␈αcapabilities.␈αThe␈αARPA␈αNetwork␈α
experience␈α
suggests␈α
that␈α
two␈α
levels␈α
of␈α
protocol␈↓ ↓H
␈↓ ↓Hbe␈αimplemented.␈αFirst,␈αa␈αlow␈αlevel␈αprotocol␈αenabling␈αone␈αcomputer␈αto␈αsend␈αa␈αbit␈αstream␈αto␈αthe␈αother;␈↓ ↓H
␈↓ ↓Hsecond,␈αa␈αhigher␈αlever␈αprotocol,␈αwhich␈αinterprets␈αthe␈αbit␈αstreams␈αas␈αmail,␈αfile␈αdata,␈αcharacters␈αfrom␈αa␈↓ ↓H
␈↓ ↓Hterminal,␈α
etc.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HThe␈α⊂paper␈α⊂is␈α⊂divided␈α⊂into␈α⊂two␈α⊂parts.␈α⊂First,␈α⊂a␈α⊂description␈α⊂of␈α⊂those␈α⊂benefits␈α⊂that␈α⊂are␈α∂immediately␈↓ ↓H
␈↓ ↓Hgained␈α⊂by␈α⊂installations␈α⊂that␈α⊂implement␈α⊂this␈α⊂facility;␈α⊂second,␈α∂an␈α∂explanation␈α∂of␈α∂the␈α∂hardware␈α∂and␈↓ ↓H
␈↓ ↓Hsoftware␈αnecessary␈αfor␈αimplementation.␈αThe␈αsecond␈αpart␈αwill␈αalso␈αinclude␈αa␈αdiscussion␈αof␈αsome␈α
of␈α
the␈↓ ↓H
␈↓ ↓Hproblems␈α
that␈α
arise␈α
and␈α
solutions␈α
that␈α
have␈α
been␈α
proposed.␈↓ ↓H
␈↓ ↓H
␈↓βThree Main Goals␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThe␈αthree␈αmain␈αbenefits␈αobtained␈αby␈αconnection␈αof␈αremote␈αcomputers␈αare␈αthe␈αmail,␈αterminal␈αsession,␈↓ ↓H
␈↓ ↓Hand␈α
file␈α
transfer␈α
features.␈α
These␈α
are␈α
described␈α
in␈α
detail␈α
below.␈↓ ↓H
␈↓ ↓H
␈↓αThe Mail Feature␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThe␈α∩single␈α⊃most␈α⊃important␈α⊃feature␈α⊃that␈α⊃is␈α⊃provided␈α⊃by␈α⊃this␈α⊃communication␈α⊃scheme␈α⊃is␈α⊃the␈α⊃mail␈↓ ↓H
␈↓ ↓Hfacility.␈αIn␈αorder␈αto␈αmore␈αfully␈α
explain␈α
this␈α
facility␈α
I␈α
would␈α
like␈α
to␈α
describe␈α
briefly␈α
the␈α
mail␈α
feature␈α
as␈↓ ↓H
␈↓ ↓Hit␈α∞is␈α∞implemented␈α∞in␈α∞the␈α∞Stanford␈α∞University␈α∞Artificial␈α∞Intelligence␈α∞Laboratory␈α∞timesharing␈α
system␈↓ ↓H
␈↓ ↓H(which␈αhas␈αevolved␈αfrom␈αan␈αearly␈αversion␈α
of␈α
the␈α
DEC␈α
monitor).␈α
Each␈α
user␈α
has␈α
one␈α
file␈α
in␈α
the␈α
system␈↓ ↓H
␈↓ ↓Hcontaining␈α∩the␈α⊃text␈α⊃of␈α⊃various␈α⊃messages␈α⊃that␈α⊃he␈α⊃has␈α⊃been␈α⊃sent.␈α⊃The␈α⊃file␈α⊃is␈α⊃in␈α⊃a␈α⊃format␈α⊃which␈↓ ↓H
␈↓ ↓Hseparates␈α∂the␈α∂individual␈α∂messages␈α∂from␈α∂each␈α∂other␈α∂and␈α∂contains␈α∂information␈α∂about␈α∂who␈α∂sent␈α∂the␈↓ ↓H
␈↓ ↓Hmessages␈α
and␈α
when␈α
they␈α
were␈α
sent.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HThere␈α
are␈α
two␈α
monitor␈α
commands,␈α
MAIL␈αfor␈αsending␈αmessages␈αand␈αRCV␈αfor␈αreceiving␈αthem.␈αThe␈↓ ↓H
␈↓ ↓HMAIL␈αcommand␈αspecifies␈αa␈αmessage␈αand␈αa␈αuser␈αto␈αwhom␈αthe␈αmessage␈αis␈αsent.␈αThe␈αmessage␈αis␈αadded␈↓ ↓H
␈↓ ↓Hto␈α∞the␈α∞front␈α∞of␈α∞the␈α
destination␈α
user's␈α
mail␈α
file␈α
in␈α
a␈α
format␈α
that␈α
is␈α
understood␈α
by␈α
RCV.␈α
The␈α
RCV␈↓ ↓H
␈↓ ↓Hcommand␈αruns␈αa␈αprogram␈αthat␈αinterprets␈αthis␈αfile␈αformat␈αand␈αtypes␈αeach␈αmessage␈αin␈αthe␈αuser's␈αmail␈↓ ↓H
␈↓ ↓Hfile.␈α∞After␈α∞each␈α∞message␈α∞is␈α∞typed,␈α∞the␈α∞user␈α∞has␈α∞various␈α∞options␈α∞for␈α∞processing␈α∞it.␈α∞He␈α∞may␈α
delete␈α
it␈↓ ↓H
␈↓ ↓Hfrom␈αhis␈αmail␈αfile,␈αtransfer␈αit␈αto␈αsome␈αother␈αfile,␈αor␈αto␈αsome␈αother␈αuser's␈αmail␈αfile,␈αmake␈αa␈αhard␈αcopy,␈↓ ↓H
␈↓ ↓Hleave␈α∞it␈α∞alone,␈α∞etc.␈α∞After␈α∞disposing␈α∞of␈α∞each␈α
message,␈α
the␈α
RCV␈α
program␈α
proceedes␈α
to␈α
type␈α
the␈α
next␈↓ ↓H
␈↓ ↓Hmessage␈α
in␈α
the␈α
mail␈α
file.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HHere␈α
is␈α
an␈α
example␈α
of␈α
a␈α
message␈α
that␈α
user␈α
RUBIN␈α
sent␈α
to␈α
user␈α
JEFF:␈↓ ↓H
␈↓ ↓H
MAIL JEFF I sure wish I could send you this message at a far away computer.␈↓ ↓H
␈↓ ↓H
User JEFF types:␈↓ ↓H
␈↓ ↓H
RCV␈↓ ↓H
␈↓ ↓H
with response:␈↓ ↓H
␈↓ ↓H
␈↓↓∂02-MAY-75␈↓ β81325␈↓ ∧λ␈↓ ∧X␈↓ ¬(RUBIN␈↓ ↓H
I sure wish I could send you this message at a far away computer.␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThe␈α⊃symbol␈α⊃∂␈α⊃denotes␈α⊃a␈α⊃non-printing␈α⊃character␈α⊃that␈α⊃is␈α⊃used␈α⊃by␈α⊃MAIL␈α⊂and␈α⊂RCV␈α⊂to␈α⊂mark␈α⊂the␈↓ ↓H
␈↓ ↓Hbeginning␈αof␈αa␈αnew␈αmessage.␈αThe␈αRCV␈αcommand␈αmakes␈αthe␈αmail␈αfacility␈αvery␈αconvenient␈αin␈αday␈αto␈↓ ↓H
␈↓ ↓Hday␈α∃operations␈α∃at␈α∀Stanford.␈α∀Via␈α∀the␈α∀mail␈α∀system␈α∀bugs␈α∀are␈α∀reported␈α∀to␈α∀program␈α∀maintainers,␈↓ ↓H
␈↓ ↓Himportant␈α
bureaucratic␈αinformation␈αis␈αtransmitted,␈αand␈αthe␈αuser␈αcommunity␈αis␈αkept␈αinformed␈αof␈αthe␈↓ ↓H
␈↓ ↓Hlatest␈α
events.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HThe␈αconcept␈αof␈αa␈αmail␈αfacility␈αis␈αby␈αno␈αmeans␈αunique␈αto␈αStanford.␈αMany␈αother␈αPDP-10␈αsystems␈α
(and␈↓ ↓H
␈↓ ↓Hsystems␈α
running␈α
on␈α
other␈α
computers)␈α
have␈αhad␈αmail␈αsystems␈αfor␈αa␈αlong␈αtime,␈αalthough␈αusually␈αthey␈↓ ↓H
␈↓ ↓Hall␈α
have␈α
different␈α
conventions.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HThe␈αpoint␈αof␈αdescribing␈αthe␈αmail␈αsystem␈αis␈αthat␈αit␈αis␈αdesirable␈αto␈α
be␈α
able␈α
to␈α
send␈α
mail␈α
from␈α
a␈α
user␈α
on␈↓ ↓H
␈↓ ↓Hone␈αcomputer␈αto␈αa␈αuser␈αon␈αa␈αgeographically␈αdistant␈α
computer.␈α
This␈α
would␈α
be␈α
useful,␈α
for␈α
example,␈α
for␈↓ ↓H
␈↓ ↓Hreporting␈αbugs␈αin␈αsoftware␈αmaintained␈αat␈αa␈αforeign␈αsite.␈α(It␈αmight␈αeven␈αmake␈αsending␈αSPRs␈αto␈αDEC␈↓ ↓H
␈↓ ↓Heasy.)␈α
Before␈α
explaining␈α
how␈α
this␈α
can␈α
be␈α
accomplished,␈α
I␈α
would␈α
like␈α
to␈αdescribe␈αtwo␈αother␈αfeatures␈↓ ↓H
␈↓ ↓Hthat␈α
would␈α
be␈α
generally␈α
useful␈α
in␈α
communications␈α
between␈α
computers.␈↓ ↓H
␈↓ ↓H
␈↓αThe Terminal Session Feature␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThis␈αfeature,␈αvery␈αsimply,␈αallows␈αa␈αuser␈αon␈αcomputer␈αA␈αto␈αlog␈αin␈αto␈αthe␈αsystem␈αrunning␈αon␈αcomputer␈↓ ↓H
␈↓ ↓HB.␈αComputer␈αB␈αtreats␈αcomputer␈αA␈αas␈αa␈αdial-up␈αor␈αlocal␈αterminal␈αand␈αmay␈αimpose␈αwhatever␈αsecurity␈↓ ↓H
␈↓ ↓Hrestrictions␈αit␈αdesires.␈α
Once␈α
the␈α
log␈α
in␈α
is␈α
established,␈α
however,␈α
the␈α
user␈α
on␈α
computer␈α
A␈α
may␈α
engage␈α
in␈↓ ↓H
␈↓ ↓Ha␈α
terminal␈α
session␈α
without␈α
being␈α
distinguished␈α
from␈α
other␈α
users␈α
of␈α
computer␈α
B.␈↓ ↓H
␈↓ ↓H
␈↓αThe File Transfer Feature␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HA␈α∞further␈α∞advantage␈α∞of␈α∞the␈α∞connection␈α∞of␈α∞remote␈α∞computers␈α∞is␈α∞the␈α
ability␈α
to␈α
send␈α
a␈α
file␈α
from␈α
one␈↓ ↓H
␈↓ ↓Hmachine␈α∩to␈α⊃another.␈α⊃This␈α⊃is␈α⊃useful␈α⊃for␈α⊃transfering␈α⊃documents␈α⊃or␈α⊃source␈α⊃files␈α⊃or␈α⊃even␈α⊃runnable␈↓ ↓H
␈↓ ↓Hprograms␈α∀between␈α∀compatible␈α∀machines.␈α∀This␈α∪feature␈α∪is␈α∪the␈α∪least␈α∪tolerant␈α∪of␈α∪data␈α∪errors␈α∪and␈↓ ↓H
␈↓ ↓Hprovisions␈α
must␈α
be␈α
made␈α
to␈α
guarantee␈α
data␈α
integrity␈α
by␈α
means␈α
of␈α
error␈α
checking␈α
and␈α
retransmission.␈↓ ↓H
␈↓ ↓H
␈↓βThe Implementation␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HMany␈α∞possible␈α
implementations␈α
exist␈α
for␈α
providing␈α
the␈α
three␈α
main␈α
features.␈α
Some␈α
of␈α
the␈α
problems␈↓ ↓H
␈↓ ↓Hthat␈αare␈αlikely␈αto␈αbe␈αencountered␈αand␈αpossible␈αsolutions␈αare␈αdescribed␈αbelow.␈αThe␈αimportant␈αthing␈αis␈↓ ↓H
␈↓ ↓Hnot␈αthe␈αspecific␈αdetails␈αof␈αthe␈αimplementation␈αbut␈α
rather␈α
the␈α
idea␈α
that␈α
it␈α
is␈α
possible␈α
to␈α
connect␈α
remote␈↓ ↓H
␈↓ ↓Hcomputers␈α
to␈α
accomplish␈α
the␈α
main␈α
goals␈α
without␈α
an␈α
unreasonable␈α
amount␈α
of␈α
effort.␈↓ ↓H
␈↓ ↓H
␈↓αConnecting Remote Computers␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThe␈α⊂simplest␈α∂way␈α∂to␈α∂connect␈α∂geographically␈α∂separated␈α∂computers␈α∂is␈α∂by␈α∂means␈α∂of␈α∂already␈α∂existing␈↓ ↓H
␈↓ ↓Hteletype␈αinterfaces.␈αIn␈αthis␈αscheme,␈αeach␈αmachine␈αlooks␈αlike␈αa␈αteletype␈αterminal␈αto␈αthe␈αother.␈αSince␈αall␈↓ ↓H
␈↓ ↓Hthat␈α∞is␈α∞necessary␈α∞for␈α∞long␈α∞distance␈α∞teletype␈α∞communication␈α∞is␈α∞a␈α∞modem␈α∞and␈α∞a␈α∞telephone␈α
line,␈α
each␈↓ ↓H
␈↓ ↓Hconnection␈α∪is␈α∪rather␈α∪inexpensive.␈α∪For␈α∪example,␈α∪one␈α∩full-duplex␈α∩connection␈α∩at␈α∩300␈α∩baud␈α∩would␈↓ ↓H
␈↓ ↓Hrequire␈α
the␈α
following␈α
equipment:␈↓ ↓H
␈↓ ↓H
␈↓ α_phone line at about $6/mo␈↓ ↓H
␈↓ α_data-set␈α
with␈α
auto-answer,␈α
eg.␈α
type␈α
103A␈α
at␈α
about␈α
$30/mo␈↓ α_
␈↓ ↓H␈↓ α_automatic␈α
calling␈α
unit,␈α
eg.␈α
type␈α
801A␈α
at␈α
about␈α
$30/mo␈↓ α_
␈↓ ↓H␈↓ ↓H
␈↓ ↓HThis␈α
would␈α
allow␈α
one␈α
computer␈α
to␈α
call␈α
another␈α
by␈α
operating␈α
the␈α
automatic␈α
calling␈α
unit␈α
to␈α
dial␈αthe␈↓ ↓H
␈↓ ↓Hother␈α∩machine,␈α∩whose␈α∩data-set␈α∩would␈α∩automatically␈α∩answer.␈α∩A␈α∩full-duplex␈α∩300␈α∩baud␈α⊃connection␈↓ ↓H
␈↓ ↓Hwould␈α
thereby␈α
be␈α
established.␈↓ ↓H
␈↓ ↓H
␈↓αWhy a Protocol␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HAt␈α
this␈α
point␈α
one␈α
might␈α
ask␈α
why␈α
doesn't␈α
one␈α
computer␈αjust␈αact␈αas␈αa␈αteletype␈αusing␈αthe␈αhost␈αsystem.␈↓ ↓H
␈↓ ↓HThe␈α∞answer␈α∞is␈α∞twofold;␈α∞first␈α∞there␈α∞is␈α∞a␈α∞technical␈α∞problem.␈α∞Many␈α∞timesharing␈α
systems␈α
make␈α
certain␈↓ ↓H
␈↓ ↓Hassumptions␈αabout␈αthe␈αrate␈αat␈αwhich␈αinput␈α
characters␈α
will␈α
appear.␈α
They␈α
assume␈α
that␈α
users␈α
are␈α
typing␈↓ ↓H
␈↓ ↓Hon␈αterminals␈αand␈αtherefore␈αthat␈αcharacters␈αwill␈αnot␈αbe␈αinput␈αfaster␈αthan␈αsome␈αslow␈αrate.␈αA␈αfast␈αtypist␈↓ ↓H
␈↓ ↓Hmay␈α
type␈α
at␈α7␈αcharacters␈αa␈αsecond,␈αor␈α77␈αbaud,␈αbut␈αusually␈αpauses␈αoccasionally.␈αA␈αcomputer,␈αon␈αthe␈↓ ↓H
␈↓ ↓Hother␈α∂hand,␈α∂may␈α∂send␈α∂a␈α∂continuous␈α∂stream␈α∂of␈α∂characters␈α∂at␈α∂300␈α∂baud␈α∂without␈α∂pauses.␈α∂Usually,␈α∂a␈↓ ↓H
␈↓ ↓Hcomputer␈αreceives␈αteletype␈αinput␈α
by␈α
taking␈α
an␈α
interrupt,␈α
reading␈α
the␈α
character,␈α
and␈α
storing␈α
it␈α
away␈α
in␈↓ ↓H
␈↓ ↓Ha␈αbuffer,␈αto␈αbe␈αread␈αlater␈αby␈αsome␈αprogram␈αor␈αpossibly␈αby␈αthe␈αmonitor.␈αAs␈αthe␈αprogram␈αreads␈αthese␈↓ ↓H
␈↓ ↓Hcharacters,␈α∞the␈α∞buffer␈α∞space␈α∞is␈α∞again␈α∞made␈α
available␈α
for␈α
further␈α
input␈α
characters.␈α
Usually,␈α
when␈α
a␈↓ ↓H
␈↓ ↓Huser␈α∂is␈α∂interacting␈α∂with␈α∂a␈α∂program,␈α∂he␈α∂does␈α∞not␈α∞type␈α∞constantly␈α∞while␈α∞ignoring␈α∞the␈α∞output.␈α∞There␈↓ ↓H
␈↓ ↓Htends␈α⊃to␈α⊃be␈α⊃a␈α⊃self-imposed␈α⊃regulation␈α⊃of␈α⊃the␈α⊃quantity␈α⊃of␈α⊃input␈α⊃so␈α⊂that␈α⊂only␈α⊂a␈α⊂small␈α⊂amount␈α⊂of␈↓ ↓H
␈↓ ↓Hbuffering␈α∩is␈α∩necessary.␈α∩However,␈α∩with␈α∩a␈α∩computer␈α∩continuously␈α∩generating␈α∩input,␈α∩the␈α∩buffering␈↓ ↓H
␈↓ ↓Hcapability␈α
of␈α
the␈α
receiving␈α
machine␈α
may␈α
be␈α
exceeded,␈α
say␈α
if␈αthe␈αprogram␈αresponsible␈αfor␈αremoving␈↓ ↓H
␈↓ ↓Hcharacters␈α⊃from␈α⊃the␈α⊃input␈α⊃buffer␈α⊃is␈α⊃not␈α⊂reading␈α⊂input␈α⊂because␈α⊂it␈α⊂is␈α⊂computing␈α⊂or␈α⊂doing␈α⊂a␈α⊂disk␈↓ ↓H
␈↓ ↓Htransfer␈αor␈αis␈αstopped␈αfor␈αdebugging.␈α(This␈αproblem␈αis␈αcalled␈α␈↓↓input␈αbuffer␈αoverrun␈↓.)␈αFor␈αthis␈αreason,␈↓ ↓H
␈↓ ↓Hit␈αis␈αdesirable␈αto␈αhave␈αsome␈αflow␈αcontrol␈αmechanism␈αimplemented␈αso␈αthat␈αthe␈α
receiving␈α
machine␈α
may␈↓ ↓H
␈↓ ↓Hregulate␈αthe␈α␈↓↓quantity␈↓␈αof␈αdata␈αit␈αmust␈αbe␈αable␈αto␈αhandle.␈αThis␈αis␈αdone␈αby␈αestablishing␈αa␈αprotocol␈αthat␈↓ ↓H
␈↓ ↓Hboth␈α
machines␈α
will␈α
follow␈α
and␈α
gives␈α
certain␈α
rules␈α
for␈α
when␈α
and␈α
how␈α
much␈α
data␈α
can␈α
be␈α
transmitted.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HThe␈α∞second␈α∞reason␈α∞why␈α∞the␈α∞calling␈α∞computer␈α∞does␈α
not␈α
merely␈α
act␈α
as␈α
a␈α
teletype␈α
has␈α
to␈α
do␈α
with␈α
the␈↓ ↓H
␈↓ ↓Hthree␈α∞goals␈α∞described␈α∞earlier.␈α∞After␈α∞deciding␈α∞to␈α∞do␈α∞a␈α
file␈α
transfer␈α
or␈α
send␈α
mail␈α
or␈α
have␈α
a␈α
terminal␈↓ ↓H
␈↓ ↓Hsession,␈αthe␈αcalling␈αcomputer␈αmust␈αinstruct␈αthe␈αcalled␈αcomputer␈αof␈αthis␈αdecision,␈αwhich,␈αin␈αturn,␈αmust␈↓ ↓H
␈↓ ↓Hrun␈α∞various␈α∞programs␈α∞or␈α∞parts␈α∞of␈α∞the␈α∞monitor␈α∞to␈α∞handle␈α∞these␈α∞different␈α
features.␈α
Therefore,␈α
there␈↓ ↓H
␈↓ ↓Hmust␈αbe␈αsome␈αway␈α
to␈α
give␈α
extra␈α
meaning␈α
to␈α
the␈α
characters␈α
being␈α
sent␈α
over␈α
the␈α
phone␈α
line,␈α
to␈α
indicate␈↓ ↓H
␈↓ ↓Ha␈α
desire␈α
to␈α
initiate␈α
or␈α
terminate␈α
any␈α
of␈α
the␈α
three␈α
features.␈α
Again,␈α
this␈α
is␈α
provided␈α
by␈α
the␈α
protocol.␈↓ ↓H
␈↓ ↓H
␈↓αThe Protocol␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThe␈α
protocol␈αhas␈αtwo␈αmain␈αobjectives.␈αFirst␈αthe␈αprotocol␈αimplements␈αthe␈αflow␈αcontrol␈αmechanism␈αto␈↓ ↓H
␈↓ ↓Havoid␈α⊂input␈α⊂buffer␈α⊂overrun.␈α⊂Second,␈α⊂the␈α⊂protocol␈α⊂allows␈α⊂the␈α⊂two␈α⊂computers␈α⊂to␈α⊂agree␈α⊂that␈α∂future␈↓ ↓H
␈↓ ↓Hcharacters␈αwill␈αbe␈αused␈αfor␈αfile␈αtransfer,␈αmail␈αor␈αterminal␈αsessions.␈αAll␈αprotocols␈αare␈αimplemented␈αby␈↓ ↓H
␈↓ ↓Hsending␈α⊂certain␈α⊂special␈α⊂sequences␈α⊂of␈α⊂characters.␈α⊂These␈α⊂sequences␈α⊂all␈α⊂begin␈α⊂with␈α∂the␈α∂same␈α∂special␈↓ ↓H
␈↓ ↓Hcharacter,␈α⊂namely␈α⊂an␈α⊂ASCII␈α⊂rubout␈α⊂(177␈α∂octal).␈α∂The␈α∂protocol␈α∂describes␈α∂how␈α∂to␈α∂detect␈α∂the␈α∂special␈↓ ↓H
␈↓ ↓Hsequences␈αand␈αhow␈αto␈αdetermine␈αtheir␈αlength.␈αOne␈αof␈αthe␈αdesign␈αfeatures␈αof␈αthe␈αprotocol␈αis␈αthat␈αthe␈↓ ↓H
␈↓ ↓Hcharacter␈α
whose␈α
octal␈α
code␈α
is␈α
zero␈αis␈αnever␈αtransmitted.␈αThis␈αis␈αdesirable␈αbecause␈αsome␈αtimesharing␈↓ ↓H
␈↓ ↓Hsystems␈α
discard␈α
a␈α
null␈α
character␈α
and␈α
never␈α
let␈α
the␈α
receiving␈α
program␈α
see␈α
one.␈↓ ↓H
␈↓ ↓H
␈↓αThe Flow Control Mechanism␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HIn␈αthe␈αdescription␈αof␈αthe␈αflow␈αcontrol␈αmechanism,␈αassume␈αthat␈αthe␈αcalling␈αcomputer␈α(computer␈αA)␈αis␈↓ ↓H
␈↓ ↓Hin␈α∪the␈α∪middle␈α∪of␈α∪a␈α∪terminal␈α∩session␈α∩with␈α∩the␈α∩called␈α∩computer␈α∩(computer␈α∩B).␈α∩This␈α∩means␈α∩that␈↓ ↓H
␈↓ ↓Hcharacters␈αsent␈αby␈αA␈αare␈αtreated␈αby␈αB␈αas␈αif␈αthey␈αwere␈αtyped␈αin␈α
on␈α
a␈α
terminal.␈α
The␈α
problem␈α
now␈α
is␈α
to␈↓ ↓H
␈↓ ↓Hprovide␈α∞computer␈α∞B␈α∞with␈α∞some␈α∞way␈α∞to␈α∞control␈α∞the␈α∞amount␈α∞of␈α∞data␈α∞that␈α∞A␈α∞may␈α∞send.␈α
Similarly␈α
A␈↓ ↓H
␈↓ ↓Hmust␈α∩control␈α⊃how␈α⊃many␈α⊃characters␈α⊃B␈α⊃sends␈α⊃back.␈α⊃To␈α⊃do␈α⊃this,␈α⊃we␈α⊃establish␈α⊃two␈α⊃counts␈α⊃in␈α⊃each␈↓ ↓H
␈↓ ↓Hmachine,␈αcalled␈αallocations.␈αComputer␈αA␈αmaintains␈αa␈αcount␈αof␈αthe␈αnumber␈αof␈αcharacters␈αthat␈αA␈αmay␈↓ ↓H
␈↓ ↓Hsend␈α∞B,␈α∞called␈α∞␈↓↓output␈α∞allocation␈↓␈α∞and␈α∞another␈α∞indicating␈α∞how␈α
many␈α
B␈α
may␈α
send␈α
to␈α
A,␈α
called␈α
␈↓↓input␈↓ ↓H
␈↓ ↓Hallocation␈↓.␈αComputer␈αB␈αalso␈αmaintains␈αsymmetric␈α
counts␈α
and,␈α
of␈α
course,␈α
A's␈α
output␈α
allocation␈α
is␈α
equal␈↓ ↓H
␈↓ ↓Hto␈αB's␈αinput␈αallocation␈αand␈αvice␈αversa.␈αThe␈αfollowing␈αdiscussion␈αis␈αentirely␈αsymmetric␈αand␈αA␈αand␈αB␈↓ ↓H
␈↓ ↓Hmay␈αbe␈αinterchanged␈αthroughout.␈αSuppose␈αA␈αis␈αsending␈αcharacters␈αto␈αB.␈αFor␈αeach␈αcharacter␈αsent,␈αA␈↓ ↓H
␈↓ ↓Hdecrements␈α
its␈α
output␈α
allocation␈α
and␈α
for␈α
each␈α
character␈α
received,␈α
B␈α
decrements␈α
its␈α
input␈αallocation.␈↓ ↓H
␈↓ ↓HAssuming␈αthat␈αno␈αcharacters␈αare␈αlost,␈αthese␈αtwo␈αcounts␈αshould␈αtrack␈αeach␈αother.␈αA␈αis␈αallowed␈αto␈αsend␈↓ ↓H
␈↓ ↓Ha␈αcharacter␈αonly␈αif␈αit␈αwill␈αnot␈αmake␈αits␈αoutput␈αallocation␈αnegative.␈αThe␈αoutput␈αallocation␈αis␈αtherefore␈↓ ↓H
␈↓ ↓Hthe␈α
number␈α
of␈α
characters␈α
A␈α
is␈α
allowed␈α
to␈α
send.␈α
B␈α
may␈α
increase␈α
A's␈αoutput␈αallocation␈αby␈αsending␈αa␈↓ ↓H
␈↓ ↓Hprotocol␈αsequence␈αspecifying␈αa␈α10␈α
bit␈α
value␈α
to␈α
add␈α
to␈α
the␈α
output␈α
allocation.␈α
B,␈α
of␈α
course,␈α
will␈α
add␈α
this␈↓ ↓H
␈↓ ↓Hsame␈αnumber␈αto␈αits␈αinput␈αallocation.␈αIn␈αthis␈αway␈αB␈αis␈αable␈αto␈αregulate␈αthe␈αnumber␈αof␈αcharacters␈αthat␈↓ ↓H
␈↓ ↓HA␈αmay␈αsend␈αat␈αany␈αone␈αtime.␈αB␈αneed␈αonly␈αallocate␈αto␈αA␈αthat␈αnumber␈αof␈αcharacters␈αfor␈αwhich␈αB␈αcan␈↓ ↓H
␈↓ ↓Hguarantee␈αbuffering.␈αIf␈αfor␈αsome␈αreason,␈αB␈αis␈αnot␈αable␈αto␈αdispose␈αof␈αcharacters␈αit␈αhas␈αreceived,␈αit␈αwill␈↓ ↓H
␈↓ ↓Hstop␈αupdating␈αA's␈αoutput␈αallocation␈αand␈αA␈αwill␈αeventually␈αstop␈αsending␈αcharacters.␈αB␈αwill␈αbe␈αable␈αto␈↓ ↓H
␈↓ ↓Hbuffer␈α⊂those␈α⊂characters␈α⊂that␈α⊂A␈α⊂does␈α⊂send␈α⊂and␈α⊂so␈α⊂no␈α⊂characters␈α⊂will␈α⊂be␈α⊂lost␈α⊂due␈α∂to␈α∂input␈α∂buffer␈↓ ↓H
␈↓ ↓Hoverrun.␈↓ ↓H
␈↓ ↓H
␈↓αAllocation Stategy␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HWithin␈αthis␈αallocation␈αscheme,␈αboth␈αcomputers␈αhave␈αto␈αchoose␈αwhen␈αto␈αreallocate.␈αThere␈αare␈αcertain␈↓ ↓H
␈↓ ↓Hsimple␈α⊂minded␈α⊂reallocation␈α⊂strategies␈α⊂which␈α⊂will␈α⊂lead␈α⊂to␈α⊂a␈α⊂situation␈α⊂called␈α⊂a␈α⊂␈↓↓deadly␈α⊂embrace␈↓.␈α∂For␈↓ ↓H
␈↓ ↓Hexample,␈αsuppose␈αboth␈αA␈αand␈αB␈αdecide␈αto␈αoutput␈αuntil␈αthey␈αhave␈αno␈αallocation␈αleft.␈αNow␈αsuppose␈αB␈↓ ↓H
␈↓ ↓Hwants␈α∞to␈α∞send␈α∞a␈α∞reallocation␈α∞to␈α∞A.␈α∞However,␈α
B␈α
being␈α
out␈α
of␈α
allocation,␈α
is␈α
not␈α
allowed␈α
to␈α
send␈α
any␈↓ ↓H
␈↓ ↓Hcharacters␈α
to␈α
A.␈α
A␈α
is␈α
in␈α
a␈α
similar␈α
bind,␈α
and␈α
as␈α
a␈α
result␈αno␈αmore␈αcharacters␈αcan␈αbe␈αsent␈αat␈αall.␈αThe␈↓ ↓H
␈↓ ↓Hsimplest␈α∩stategy␈α∩that␈α∩avoids␈α∩deadly␈α∩embraces␈α∩involves␈α⊃two␈α⊃thresholds.␈α⊃A␈α⊃will␈α⊃stop␈α⊃sending␈α⊃text␈↓ ↓H
␈↓ ↓Hcharacters␈α∂when␈α∂its␈α∂output␈α∂allocation␈α∞falls␈α∞below␈α∞a␈α∞threshold.␈α∞A␈α∞may␈α∞still␈α∞send␈α∞protocol␈α∞sequences␈↓ ↓H
␈↓ ↓Hbelow␈α⊃this␈α⊃threshold.␈α⊃In␈α⊃addition,␈α⊃A␈α⊃will␈α⊃reallocate␈α⊃to␈α⊃B␈α⊃when␈α⊃A's␈α⊃input␈α⊃allocation␈α⊃falls␈α⊃below␈↓ ↓H
␈↓ ↓Hanother␈αthreshold.␈αIn␈αthis␈αway,␈αA␈αwill␈αalways␈αreserve␈αfor␈αitself␈αsome␈αamount␈αof␈αallocation␈αto␈αbe␈αused␈↓ ↓H
␈↓ ↓Hfor␈α∂␈↓↓emergency␈↓␈α∂protocol␈α∂sequences,␈α∂and␈α∂will␈α∂try␈α∂to␈α∂keep␈α∂B's␈α∂allocation␈α∂up␈α∂to␈α∂a␈α∂reasonable␈α∂amount.␈↓ ↓H
␈↓ ↓HWith␈α
both␈α
machines␈α
following␈α
this␈α
strategy,␈α
deadly␈α
embraces␈α
are␈α
avoided.␈↓ ↓H
␈↓ ↓H
␈↓αHigher Level Protocol␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HOne␈αof␈αthe␈αmain␈α
objects␈α
of␈α
the␈α
protocol␈α
is␈α
to␈α
enable␈α
the␈α
calling␈α
computer␈α
to␈α
indicate␈α
what␈α
function␈α
it␈↓ ↓H
␈↓ ↓Hwishes␈αto␈αperform.␈αIn␈αall␈αcases,␈αthis␈αis␈αdone␈αby␈αan␈αexchange␈αof␈αspecial␈αprotocol␈αsequences;␈αa␈αrequest␈↓ ↓H
␈↓ ↓Hand␈αan␈αacknowledge.␈αIn␈αorder␈α
to␈α
syncronize␈α
the␈α
allocation␈α
counters␈α
in␈α
the␈α
two␈α
computers,␈α
they␈α
are␈α
set␈↓ ↓H
␈↓ ↓Hto␈αsome␈αinitial␈αvalue␈α(say␈α20␈αcharacters)␈αwhen␈αthe␈αtwo␈αmachines␈αare␈αfirst␈αconnected.␈αIt␈αis␈αthen␈αup␈αto␈↓ ↓H
␈↓ ↓Heach␈α
computer␈α
to␈α
send␈α
an␈α
allocation␈α
to␈α
the␈α
other,␈α
to␈α
bring␈αthe␈αallocations␈αup␈αto␈αthe␈αdesired␈αvalues.␈↓ ↓H
␈↓ ↓HThis␈αinitial␈αvalue␈αis␈αnecessary␈αto␈αget␈αthings␈αstarted,␈αsince␈αa␈αcertain␈αminimal␈αallocation␈αis␈αnecessary␈αto␈↓ ↓H
␈↓ ↓Hsend␈α
an␈α
allocation␈α
or␈α
other␈α
special␈α
protocol␈α
sequence.␈↓ ↓H
␈↓ ↓H
␈↓αProtocol For Terminal Session␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HFor␈α
a␈α
terminal␈α
session,␈α
the␈α
calling␈α
computer␈α
(A)␈αsends␈αa␈αsequence␈αindicating␈α␈↓↓begin␈αterminal␈αsession␈↓.␈↓ ↓H
␈↓ ↓HThe␈αcalled␈αcomputer␈α(B)␈αreplies␈αwith␈αeither␈αan␈αacknowledge␈αor␈α
an␈α
indication␈α
that␈α
it␈α
does␈α
not␈α
wish␈α
to␈↓ ↓H
␈↓ ↓Hbegin␈α⊃a␈α⊃terminal␈α⊃session,␈α⊂possibly␈α⊂because␈α⊂there␈α⊂are␈α⊂no␈α⊂job␈α⊂slots␈α⊂available.␈α⊂Once␈α⊂A␈α⊂receives␈α⊂an␈↓ ↓H
␈↓ ↓Hacknowledge,␈α
it␈α
may␈α
send␈α
text␈α
characters␈α
which␈α
B␈α
will␈α
treat␈α
as␈α
terminal␈α
input.␈↓ ↓H
␈↓ ↓H
␈↓αProtocol For File Transfer␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HThe␈α
protocol␈α
for␈α
file␈α
transfer␈α
involves␈α
the␈α
specification␈αof␈αa␈αfile␈αname,␈αa␈αdirection␈αfor␈αthe␈αtransfer,␈↓ ↓H
␈↓ ↓Hand␈αcertain␈αaccess␈αinformation,␈αsuch␈αas␈αa␈αpassword.␈αThe␈αcalled␈αcomputer␈αhas␈αseveral␈αoptions␈αfor␈αits␈↓ ↓H
␈↓ ↓Hreply.␈αIt␈αmay␈αacknowledge␈αthe␈αrequest␈αor␈αit␈αmay␈αrefuse␈αthe␈αrequest␈αfor␈αa␈αvariety␈αof␈αreasons,␈αsuch␈αas␈↓ ↓H
␈↓ ↓H␈↓↓no␈α∩such␈α∩file␈↓,␈α∩␈↓↓access␈α∩violation␈↓,␈α∩␈↓↓no␈α∩such␈α∩user␈↓,␈α∩etc.␈α⊃The␈α⊃called␈α⊃computer␈α⊃has␈α⊃complete␈α⊃control␈α⊃over␈↓ ↓H
␈↓ ↓Hwhether␈α
the␈α
file␈α
transfer␈α
is␈α
to␈α
take␈α
place␈α
and␈α
may␈α
implement␈α
whatever␈α
protection␈α
scheme␈α
is␈α
desired.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HIn␈αorder␈αto␈αguarantee␈αthe␈αintegrity␈αof␈αthe␈αtransfer,␈αthe␈αdata␈αis␈αdivided␈αinto␈αblocks␈αof␈α300␈αcharacters.␈↓ ↓H
␈↓ ↓HThe␈α
transmission␈α
of␈α
each␈α
block␈α
of␈α
data␈α
is␈α
followed␈α
by␈α
a␈α
checksum␈α
character␈α
computed␈α
for␈α
that␈α
block.␈↓ ↓H
␈↓ ↓HThe␈α
receiving␈αmachine␈αcomputes␈αthe␈αchecksum␈αon␈αthe␈αdata␈αblock␈αas␈αit␈αis␈αreveived␈αand␈αcompares␈αit␈↓ ↓H
␈↓ ↓Hwith␈α⊗the␈α⊗transmitted␈α⊗checksum␈α⊗character.␈α⊗The␈α⊗sending␈α⊗machine␈α⊗stops␈α⊗transmitting␈α⊗after␈α∃the␈↓ ↓H
␈↓ ↓Hchecksum␈αcharacter␈αand␈αwaits␈αfor␈αa␈αreply␈αfrom␈αthe␈αreveiving␈αmachine.␈αIf␈αthe␈αchecksum␈αas␈αcomputed␈↓ ↓H
␈↓ ↓Hby␈α⊃the␈α⊃receiving␈α⊃machine␈α⊃equals␈α⊃the␈α⊃received␈α⊃checksum,␈α⊃as␈α⊃positive␈α⊃acknowledge␈α⊃is␈α⊃sent␈α⊂to␈α⊂the␈↓ ↓H
␈↓ ↓Hsending␈α⊂machine,␈α⊂which␈α⊂then␈α⊂begins␈α∂the␈α∂transfer␈α∂of␈α∂the␈α∂next␈α∂block.␈α∂If␈α∂the␈α∂checksum␈α∂differs,␈α∂the␈↓ ↓H
␈↓ ↓Hsending␈αmachine␈αis␈αinformed␈αof␈αthis,␈αand␈αretransmits␈αthe␈αblock.␈αThe␈αchecksum␈αis␈α
sent␈α
by␈α
means␈α
of␈α
a␈↓ ↓H
␈↓ ↓Hprotocol␈α∞sequence␈α∞and␈α
so␈α
may␈α
be␈α
sent␈α
before␈α
a␈α
full␈α
block␈α
of␈α
300␈α
characters␈α
is␈α
sent␈α
if␈α
the␈α
last␈α
data␈↓ ↓H
␈↓ ↓Hblock␈α⊂is␈α⊂short.␈α⊂After␈α⊂the␈α⊂last␈α⊂block␈α⊂is␈α⊂accepted,␈α⊂the␈α⊂sending␈α⊂computer␈α⊂sends␈α⊂a␈α⊂protocol␈α∂sequence␈↓ ↓H
␈↓ ↓Hindicating␈α
the␈α
end␈α
of␈α
the␈α
file␈α
transfer.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HThe␈α300␈αcharacter␈αdata␈αblocks␈αcontain␈α50␈α36␈αbit␈αwords␈αof␈αbinary␈αinformation.␈αEach␈αword␈αis␈αbroken␈↓ ↓H
␈↓ ↓Hinto␈αsix␈αbytes␈αof␈αsix␈αbits␈αeach.␈αEach␈α
six␈α
bit␈α
byte␈α
is␈α
transmitted␈α
as␈α
a␈α
seven␈α
bit␈α
character␈α
by␈α
turning␈α
on␈↓ ↓H
␈↓ ↓Hthe␈αhigh␈αorder␈αbit␈αif␈αthe␈αsix␈αbit␈αcharacter␈αis␈αa␈αzero.␈αIn␈αthis␈αway,␈αthe␈αseven␈αbit␈αnull␈α
character␈α
and␈α
the␈↓ ↓H
␈↓ ↓Hprotocol␈α
escape␈α
character␈α
(177␈α
octal)␈α
are␈α
not␈α
sent␈α
as␈α
data␈α
bytes.␈↓ ↓H
␈↓ ↓H
␈↓αProtocol For Sending Mail␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HMail␈αis␈αsent␈αby␈αinitiating␈αa␈αfile␈αtransfer,␈αexcept␈αthat␈αinstead␈αof␈αa␈αfile␈αname,␈αa␈αuser␈αname␈αis␈αspecified.␈↓ ↓H
␈↓ ↓HThe␈αacknowledgement␈αis␈αpositive␈αif␈αthere␈αis␈αsuch␈αa␈αuser␈α
and␈α
it␈α
is␈α
possible␈α
to␈α
send␈α
him␈α
mail,␈α
negative␈↓ ↓H
␈↓ ↓Hotherwise.␈α
The␈α
text␈α
of␈α
the␈α
message␈α
is␈α
sent␈α
as␈α
a␈α
binary␈α
file␈α
with␈α
five␈α
characters␈α
to␈α
a␈α
word.␈↓ ↓H
␈↓ ↓H
␈↓βAdditional Considerations␈↓ ↓H
␈↓ ↓H
␈↓αNew Protocols␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HIt␈α∩is␈α∩a␈α∩simple␈α∩matter␈α∩to␈α⊃specify␈α⊃additions␈α⊃to␈α⊃the␈α⊃protocol␈α⊃for␈α⊃new␈α⊃features.␈α⊃For␈α⊃example,␈α⊃some␈↓ ↓H
␈↓ ↓Hcomputer␈αmay␈αhave␈αa␈αconnection␈αto␈αa␈αnational␈αnews␈αwire␈αand␈αwould␈αimplement␈αa␈αprotocol␈αwhereby␈↓ ↓H
␈↓ ↓Hit␈αwould␈αtransmit␈αnews␈αreceived␈αover␈αthe␈αwire␈αto␈αany␈αcaller␈αthat␈αmet␈αcertain␈αprotection␈αrequirements␈↓ ↓H
␈↓ ↓Hor␈αit␈αmight␈αaccept␈αkeywords␈αfrom␈αthe␈αcaller␈αand␈αreturn␈αthose␈αnews␈αstories␈αthat␈αcontain␈αthat␈αkeyword.␈↓ ↓H
␈↓ ↓HAnother␈αpossible␈αaddition␈α
to␈α
the␈α
protocol␈α
would␈α
be␈α
a␈α
specification␈α
for␈α
graphics␈α
transfers.␈α
The␈α
calling␈↓ ↓H
␈↓ ↓Hcomputer␈α
might␈α
specify␈α
the␈α
dimensions␈α
of␈α
its␈α
terminal␈α
and␈α
the␈α
called␈α
computer␈α
would␈αsend␈αcertain␈↓ ↓H
␈↓ ↓Hspecial␈α
format␈α
effectors.␈↓ ↓H
␈↓ ↓H
␈↓αError Handling and Higher Baud Rate␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HIn␈αpractice␈αa␈α300␈α
baud␈α
file␈α
transfer␈α
takes␈α
quite␈α
a␈α
long␈α
time␈α
for␈α
any␈α
reasonable␈α
size␈α
file.␈α
It␈α
is␈α
therefore␈↓ ↓H
␈↓ ↓Han␈α⊃obvious␈α⊃question␈α⊃whether␈α⊃the␈α⊃protocol␈α⊃can␈α⊃be␈α⊃adapted␈α⊃to␈α⊃work␈α⊃at␈α⊃higher␈α⊃speeds␈α⊃and␈α⊂what␈↓ ↓H
␈↓ ↓Hproblems␈αwill␈αarise.␈αOne␈αimportant␈αlimit␈αthat␈αis␈αrun␈αup␈αagainst␈αis␈αthe␈αreceiving␈αcomputer's␈αability␈αto␈↓ ↓H
␈↓ ↓Hservice␈αteletype␈αinterrupts.␈αIf␈αthe␈αreceiver␈αis␈αslightly␈αtardy,␈αit␈αmight␈αsimply␈αlose␈αa␈αcharacter␈α
out␈α
of␈α
the␈↓ ↓H
␈↓ ↓Hdata␈αstream.␈αAlso,␈αat␈αhigher␈αspeeds␈αthere␈αis␈αmore␈αchance␈αof␈αgarbling␈αthe␈αdata.␈αAs␈αa␈αsolution␈αto␈αthese␈↓ ↓H
␈↓ ↓Hproblems␈α∞it␈α∞is␈α∞possible␈α
to␈α
modify␈α
the␈α
protocol␈α
to␈α
try␈α
to␈α
detect␈α
both␈α
garbled␈α
characters␈α
and␈α
missing␈↓ ↓H
␈↓ ↓Hcharacters.␈α∩This␈α∩is␈α∩done␈α∩by␈α∩terminating␈α∩each␈α∩protocol␈α∩sequence␈α⊃with␈α⊃a␈α⊃special␈α⊃␈↓↓end␈α⊃of␈α⊃sequence␈↓␈↓ ↓H
␈↓ ↓Hcharacter␈α∂(176␈α∂octal).␈α∂Each␈α∂character␈α∂between␈α∂the␈α∂initial␈α∞177␈α∞and␈α∞the␈α∞trailing␈α∞176␈α∞has␈α∞a␈α∞sequence␈↓ ↓H
␈↓ ↓Hnumber␈αin␈αthe␈αhigh␈αorder␈αtwo␈αbits.␈αThis␈αallows␈αfor␈αcommand␈αsequences␈α
of␈α
three␈α
characters␈α
since␈α
the␈↓ ↓H
␈↓ ↓Hfirst␈αsequence␈αnumber␈αis␈α1.␈αDropped␈αand␈αgarbled␈αcharacters␈αcan␈αbe␈αdetected␈α
by␈α
checking␈α
for␈α
missing␈↓ ↓H
␈↓ ↓H177s␈α∪or␈α∪176s␈α∪and␈α∪for␈α∪incorrect␈α∪squence␈α∪numbers.␈α∪There␈α∪are␈α∪also␈α∪two␈α∪new␈α∪protocol␈α∩sequences␈↓ ↓H
␈↓ ↓Hindicating␈α
that␈α
the␈α
previous␈α
command␈α
was␈α
received␈α
correctly␈α
or␈α
incorrectly.␈α
This␈α
sequence␈α
has␈α
as␈α
one␈↓ ↓H
␈↓ ↓Hof␈αthe␈αcharacters,␈αan␈αascending␈αcount,␈αwhich␈αis␈αuseful␈αfor␈αdetecting␈αmissing␈αreplies.␈αThe␈αoriginating␈↓ ↓H
␈↓ ↓Hmachine␈α⊗always␈α⊗waits␈α⊗for␈α⊗a␈α⊗reply␈α∃for␈α∃each␈α∃command.␈α∃If␈α∃the␈α∃reply␈α∃is␈α∃positive,␈α∃it␈α∃continues␈↓ ↓H
␈↓ ↓Htransmitting.␈αIf␈αit␈αis␈αnegative,␈αit␈αretransmits␈αthe␈αlast␈αcommand.␈α
If␈α
no␈α
reply␈α
is␈α
received␈α
after␈α
a␈α
while,␈α
it␈↓ ↓H
␈↓ ↓Hassumes␈α
that␈α
the␈α
command␈α
was␈α
completely␈α
lost␈α
and␈α
retransmits␈α
the␈α
command.␈↓ ↓H
␈↓ ↓H
␈↓ ↓HOf␈αcourse,␈αit␈αis␈αpossible␈αfor␈αthis␈αscheme␈αto␈αfail␈αif␈αthe␈αerror␈αrate␈αis␈αhigh␈αenough.␈αThis␈αscheme␈αis␈αnot␈↓ ↓H
␈↓ ↓Hoffered␈α∩as␈α∩the␈α∩last␈α∩word␈α⊃in␈α⊃how␈α⊃to␈α⊃do␈α⊃reliable␈α⊃transmission␈α⊃over␈α⊃lossy␈α⊃lines,␈α⊃but␈α⊃rather␈α⊃as␈α⊃an␈↓ ↓H
␈↓ ↓Hexistence␈α
proof␈α
that␈α
there␈α
is␈α
a␈α
certain␈α
speed-reliability␈α
product␈α
that␈α
can␈α
be␈α
obtained.␈αIt␈αis␈αexpected␈↓ ↓H
␈↓ ↓Hthat␈αall␈αinitial␈αimplementations␈αof␈αthis␈αprotocol␈αwill␈α
be␈α
at␈α
300␈α
baud.␈α
As␈α
experience␈α
is␈α
gained␈α
in␈α
using␈↓ ↓H
␈↓ ↓Hit,␈α
new␈α
ways␈α
will␈α
be␈α
developed␈α
for␈α
improving␈α
its␈α
performance␈α
under␈α
adverse␈α
conditions.␈↓ ↓H
␈↓ ↓H
␈↓βConclusions␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HWe␈αbelieve␈αthat␈αthese␈αthree␈αmain␈αfeatures␈αare␈αa␈αvaluable␈αaddition␈αto␈αany␈αcomputer␈αsystem␈αand␈αthat␈↓ ↓H
␈↓ ↓Hthey␈α∪can␈α∪be␈α∪accomplished␈α∪in␈α∪a␈α∪uniform␈α∩way␈α∩at␈α∩low␈α∩cost.␈α∩Therefore,␈α∩we␈α∩suggest␈α∩that␈α∩DECUS␈↓ ↓H
␈↓ ↓Hencourage␈α
Digital␈α
to␈α
provide␈α
a␈α
specification␈α
for␈α
a␈α
protocol␈α
and␈α
an␈α
implementation␈α
in␈α
TOPS-10␈α
so␈↓ ↓H
␈↓ ↓Hthat␈α
users␈α
can␈α
benefit␈α
from␈α
these␈α
features.␈↓ ↓H
␈↓βProtocol Sequences␈↓ ↓H
␈↓ ↓H
␈↓αEach protocol sequence is of the following form:␈↓ ↓H
␈↓ ↓H
␈↓177 ␈↓↓prot val1 val2␈↓ ↓H
␈↓ ↓H
val1␈↓ and ␈↓↓val2␈↓ are used as parameters for the command ␈↓↓prot␈↓ ↓H
␈↓ ↓H
␈↓αTable of values for ␈↓↓prot, val1, val2␈↓ ↓H
␈↓ ↓H
␈↓α 1 begin terminal session␈↓ ↓H
2 terminal session positive acknowledge␈↓ ↓H
3 terminal session negative acknowledge␈↓ ↓H
4␈↓ α_terminate connection␈↓ ↓H
5 allocate␈↓ ↓H
␈↓ α_ ␈↓↓val1 val2␈↓α gives value of allocation␈↓ ↓H
6 begin file transfer␈↓ ↓H
␈↓ α_ ␈↓↓val1␈↓α gives direction of transfer␈↓ ↓H
7 begin file transfer acknowledge␈↓ ↓H
10 file transfer data block checksum␈↓ ↓H
␈↓ α_ ␈↓↓val1 val2␈↓α gives the 12 bit checksum␈↓ ↓H
11 data block received correctly␈↓ ↓H
12 data block error␈↓ ↓H
13 file transfer name acceptable␈↓ ↓H
14 file transfer name not acceptable␈↓ ↓H
15 terminate file transfer␈↓ ↓H
16 begin mail transfer␈↓ ↓H
17 begin mail transfer acknowledge␈↓ ↓H
20 input the character 176␈↓ ↓H
21 input the character 177␈↓ ↓H
␈↓ ↓H
␈↓ ↓H
The first data block of a file transfer is the file name.␈↓ ↓H
␈↓ ↓H
The first data block of a mail transfer is the user name.␈↓ ↓H
␈↓βReferences␈↓ ↓H
␈↓ ↓H
␈↓␈↓ ↓HTerminal␈α
Emulation,␈α
A␈α
Poor␈α
Man's␈α
Communication␈α
Link␈α
Between␈α
Computers␈↓ ↓H
␈↓ ↓HR.␈α
R.␈α
Barene␈α
/␈α
G.␈α
R.␈α
Henry␈↓ ↓H
␈↓ ↓HIBM␈α
Research␈↓ ↓H
␈↓ ↓HNovember␈α
20,␈α
l974␈↓ ↓H
␈↓ ↓HRJ␈α
1476␈↓ ↓H
␈↓ ↓H
␈↓ ↓HHost/Host␈α
Protocol␈α
for␈α
the␈α
ARPA␈α
Network␈↓ ↓H
␈↓ ↓HNIC␈α
8246␈↓ ↓H
␈↓ ↓HNetwork␈α
Information␈α
Center␈↓ ↓H
␈↓ ↓HStanford␈α
Reasearch␈α
Institute␈↓ ↓H
␈↓ ↓HMenlo␈α
Park,␈α
California␈↓ ↓H